package model

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/schema"
	"time"
)

var db *gorm.DB
var err error

func InitDb() {
	dsn := "root:1234@tcp(127.0.0.1:3306)/gin-blog?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
		NamingStrategy: schema.NamingStrategy{
			//解决查表的时候会自动添加复数的问题，列如 user 变成了 users
			SingularTable: true,
		},
	})

	if err != nil {
		fmt.Println("连接失败，请你检查参数", err)
	}

	sqlDB, err := db.DB()

	db.AutoMigrate(&Article{}, &Category{}, &User{})

	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
	sqlDB.SetMaxIdleConns(10)

	// SetMaxOpenConns 设置打开数据库连接的最大数量。
	sqlDB.SetMaxOpenConns(100)

	// SetConnMaxLifetime 设置了连接可复用的最大时间。
	sqlDB.SetConnMaxLifetime(10 * time.Second)

	//sqlDB.Close()

}
